#ifndef __HASHTABLE_H__
#define __HASHTABLE_H__ 

#include <stdio.h>

#include <string.h>
#include <stdlib.h>

typedef struct Node {
    char *key;
    char *value;
    struct Node *next;
} Node;

typedef struct HashTable {
    size_t size;
    size_t count;
    Node **table;
} HashTable;

unsigned int hashashh(const char *key, size_t table_size);

HashTable* HashTable_new(size_t size);

void HashTable_resize(HashTable *table);

void HashTable_insert(HashTable *table, const char *key, const char *value);

char* HashTable_search(HashTable *table, const char *key);

#endif